//
//  UMengLinkManager.swift
//  umeng_link_plugin
//
//  Created by Yunxi on 2021/6/28.
//

import UIKit
import Flutter

class UMengLinkManager: NSObject {
    
    // 获取匹配安装参数的方法
    // 通过methodCall传递是否使用剪贴板的参数
    // 通过result返回获取到的友盟服务器暂存的参数与地址
    static func getInstallParamsWith(methodCall call: FlutterMethodCall, result: @escaping FlutterResult) {
        
        guard let arguments = call.arguments as? Dictionary<String, Any> else {
            return
        }
        let optionalEnablePasteboard = arguments["enablePasteboard"] as? Bool
        guard let enablePasteboard = optionalEnablePasteboard else {
            return
        }
        
        // parameters为友盟 https://developer.umeng.com/docs/191212/detail/196072 文档中
        // App页面传参与首次安装传参
        // 我们自定义的JSSDK传参在url中，需要解析后才能得到
        MobClickLink.getInstallParams({ (parameters, url, error) in
            if let url = url, url.absoluteString.isEmpty == false {
                // UMengLinkTool用作解析getInstallParams中url的类，linkClouse中回传的参数为解析后获得的结果
                let tool = UMengLinkTool()
                tool.linkClouse = { (path, params) in
                    // 目前用不到path，就先不传了
                    result(params)
                }
                MobClickLink.handle(url, delegate: tool)
            } else {
                result([AnyHashable: Any]())
            }
        }, enablePasteboard: enablePasteboard)
    }
}

